\documentclass[a4paper, 12pt, oneside, english,ngerman]{scrartcl}

\usepackage{etex}		%beliebig viele zaehler
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}	%utf8 als standardcodierung
\usepackage[german]{fancyref}	%ermoeglicht einfache bezuege, muss vor babel stehen
\usepackage[ngerman]{babel}	%unterstuetzt formatierung multinationaler dokumente
\usepackage[breaklinks = false,linktocpage=true,linkcolor=blue,citecolor=black,filecolor=blue,colorlinks=true]{hyperref} 
%\usepackage{xcolor}

\usepackage{graphicx}		%einbinden von Bitmaps
\usepackage{float}
\usepackage{pdfpages}
\usepackage{tikz}
\usetikzlibrary{uml.activity}
\usetikzlibrary{uml.case}
\usetikzlibrary{uml.class}
%\usepackage{JHfMakro}
%\usepackage[pict2e, verification]{struktex}


\begin{document}

	\begin{titlepage}
	
	\title{Projekt "`Simulation von Atomen"' \newline \newline Pflichtenheft\\} 	
	
	%\date{\author  \today}
	\author{PaBuDr Software Corp.\\ pabudr@googlemail.com}
	
	\end{titlepage}
	\maketitle	
	%IndexzÃ¤hlung auf titelseite unterbinden und leere Seite einfÃ¼gen
	\newpage 
	\thispagestyle{empty}
	\quad 
	\newpage
	\setcounter{page}{1}
	\tableofcontents
	\newpage

	\section{Zielbestimmung}
		\subsection{Musskriterien}
			
		\begin{itemize}
			\item Es soll eine einfach zu bedienende grafische Benutzungsoberfl\"ache erstellt werden.
			\item Der Benutzer kann Gr\"osse, Anzahl,  Anfangsgeschwindigkeit der Atome einstellen, Startposition und Richtung wird vom Programm zuf\"allig 
                              generiert. 
			\item Die Simulation kann nach dem Start auch pausiert werden und danach fortgef\"uhrt werden.
			\item Die Atome bewegen sich nur auf einer zweidimensionalen Ebene.
			\item Die Simulation wird graphisch angezeigt, die Atome sind als Kreise darzustellen.
			\item Der Benutzer kann vor dem Start oder in einer Pause einzelne Atome, in eriner beliebigen Farbe markieren, diese hinterlassen dann eine Spur.
                              Diese Spur wird als eine, dem Atom folgende, Linie dargestellt.
			\item Wenn Atome kollidieren, sollen sie dem elastischen Sto\ss entsprechend ihre Richtungen und Geschwindigkeiten \"andern.
			\item Die Spuren der markierten Atome k\"onnen als GIF oder PNG Bilddatei abgespeichert werden.
			\item Der Benutzer kann Barrieren die von den Atomen undurchdringbar sind. Dieses sollen lediglich gerade Linien sein, die in der L\"ange variieren.
			\item Die Einstellungen des Simulationslaufes (Startwerte der Atome, Position und Gr\"osse der Barrieren).
			\item Tooltips und ein Hilfemen\"u sollen die Bedienung des Programms erl\"autern.
			\item Die Simulation l\"auft ruckelfrei ab, andernfalls wird eine Meldung ausgegeben, dass die Leistung des Computers nicht ausreicht, beispielsweise wenn man viel zuviele Atome eingestellt hat.
		\end{itemize}
		\subsection{Wunschkriterien}
		\begin{itemize}
			\item Die Zusammenst\"osse der Atome sollen gez\"ahlt und angezeigt werden.
			\item Zu einem Atom k\"onnen seine Start- und aktuellen Werte angezeigt werden.
			\item W\"ahrend der Pause einer Simulation k\"onnen einzelne Atome hinzugef\"ugt/gel\"oscht werden.
			\item Zus\"atzlich zum elastischen Sto\ss soll auch noch die Gravitation der Atome untereinander auf deren Richtung wirken.
			\item Neben der M\"oglichkeit die Gr\"ossen der Atome variabel einzustellen sollen die ersten 92 Atome des Periodensystems der Elemente ausw\"ahlbar sein. Dabei sollen die Isotope mit dem gr\"ossten nat\"urlichen Vorkommen gew\"ahlt werden.
		\end{itemize}
		\subsection{Abgrenzungskriterien}
		\begin{itemize}
			\item Die Atome k\"onnen sich nicht zu Molek\"ulen verbinden oder nach E=m$c^2$ zu Energie verschmelzen.
			\item Es wirken keine Van-der-Waals Kr\"afte.
		\end{itemize}
	\section{Produkteinsatz}
		\subsection{Anwendungsbereiche}
		\begin{itemize}
			\item Das Programm dient lediglich der Veranschaulichung von Atombewegungen und -st\"ossen. Es kann keine wissenschaftliche Forschung damit betrieben werden.
		\end{itemize}
		\subsection{Zielgruppen}
		\begin{itemize}
			\item Jeder an Wissenschaft interessierte
		\end{itemize}
		\subsection{Betriebsbedingungen}
		\begin{itemize}
                        \item Betriebssystem mit grafischer Oberfl\"ache
                        \item Java 1.6 oder h\"oher
                        \item Prozessor mit min. 2 GHz
                        \item min. 1 GB Arbeitsspeicher
                        \item min. 5 MB Festplattenspeicher
			\item Tastatur und Maus als Eingabeger\"ate
		\end{itemize}
	\section{Produkt\"ubersicht}
		%Use-Case-Diagramm
		\begin{tikzpicture}
			\node[draw,rectangle] (sys) at (8.2, 0.68) {Simulationsflaeche};
			%\node[draw,rectangle, below, left] (sys) at (10,1) {Simulationsflaeche};
			\node (acc) at (-6,-3){\pgfActor{Noob}};
			%\node[shade,draw,shape=document,inner sep=2ex] at ([shift={(2cm,0cm)}]a) (x) {Remark};
			\node[fill=yellow!30,draw,ellipse,double] (a) at (0,0) {Atome / Barrieren einstellen};
			\node[fill=yellow!30,draw,ellipse,double] (b) at (3,-3) {Simulation starten / beenden};
			\node[fill=yellow!30,draw,ellipse,double] (c) at (0,-6)  {Atome markieren};
			\node[fill=yellow!30,draw,ellipse,double] (d) at (6,-1.5) {Startwerte speichern / laden};
			\node[fill=yellow!30,draw,ellipse,double] (e) at (2,-4.5) {Spurbild speichern};
			%\draw[dashed] (a) -- (b);
			\draw (a) -- (acc);
			\draw (b) -- (acc);
			\draw (c) -- (acc);
			\draw (d) -- (acc);
			\draw (e) -- (acc);
			
			\draw (-5, 1) -- (10, 1);%obere linie
			\draw (-5 , -7) -- (10, -7);%untere linie
			\draw (-5, 1) -- (-5, -7);%linke seitenlinie
			\draw (10, 1) -- (10, -7); %rechte seitenlinie
		\end{tikzpicture}
% 		USE-CASE Diagramm mit User User und System Simulation
% 		\begin{itemize}
% 			\item Atome/Barrieren einstellen
% 			\item Simulation starten/pausieren/beenden
% 			\item Startwerte speichern/laden
% 			\item Spurbilder speichern
% 		\end{itemize}
	\section{Produktfunktionen}
		\begin{description}
			\item[/F 10/]	Verschiedene Atome des Periodensystems k\"onnen \"uber eine Benutzungsoberfl\"ache ausgew\"ahlt werden.
			\item[/F 20/]	Die Zusammenst\"osse der Atome untereinander und mit Barrieren werden mit Hilfe des elastischen Sto\ss berechnet.
			\item[/F 30/]	Einzelne Atome sind farbig markierbar. Dies wird vor der Simulation eingestellt. Der Benutzer kann hier aus einer Farbpalette w\"ahlen.
			\item[/F 40/]	Ein farbig markiertes Atom hinterl\"asst eine Spur. Damit man seinen Weg nachvollziehen kann. Diese Funktion kann aus Gr\"unden der \"Ubersicht ein- und ausgestellt werden.
			\item[/F 50/]	Nachdem man der Benutzer die Simulation gestoppt hat, kann er die Spuren der markierten Atome in einer Bilddatei speichern, um diese sp\"ater auszuwerten.
			\item[/F 60/]	Die Startrichtung der Atome kann vom Benutzer angegeben werden oder durch einen Zufallsgenerator erzeugt werden.
			\item[/F 70/]	Der Benutzer kann bevor er die Simulation startet Barrieren in den Versuchaufbau einbauen und damit St\"osse an Gegenst\"anden simulieren.
			\item[/F 80/]	Position und Gr\"osse von Barrieren werden in Dateien gespeichert und daraus auch wieder geladen.
			\item[/F 90/]	Ein Hilfsmen\"u erl\"autert die groben Funktionen des Programms und  M\"oglichkeiten, die sich dem Benutzers  er\"offnen.
		\end{description}
	\section{Produktdaten}
		\begin{description}
			\item[/D 10/]	Die entstandene Bilddatei der Atomspuren kann vom Benutzer ggf. gespeichert werden.
			\item[/D 20/]	Die Startbedingungen (Startpunkt, Geschwindigkeit und Anfangrichtung der Atome, Position der Barrieren)
		\end{description}
	\section{Produktleistungen}
		\begin{description}
			\item[/L 10/]	Die Simulation kann jederzeit vom Benutzer abgebrochen werden, da sie theoretisch keine festgelegte Abbruchbedingung hat.
			\item[/L 20/]	Die Bewegung der Atome \"uber den Bildschirm l\"auft fliessend ab ohne Verz\"ogerungen.
			\item[/L 30/]	Fehler vom Benutzer werden durch geeignete \"Uberpr\"ufungen fr\"uhzeitig erkannt und markiert..
		\end{description}
	\section{Qualit\"atsanforderungen}
		Fehler sollen ohne Abbruch des Programms erkannt und anschliessend dem Benutzer mitgeteilt werden. Ausserdem soll die Benutzungsoberfl\"ache verst\"andlich sein (geeignete Beschriftung)
	\section{Benutzungsoberfl\"ache}
	
	\section{Nichtfunktionale Anforderungen}
	\section{Technische Produktumgebung}
		\subsection{Software}
		\subsection{Hardware}
		\subsection{Orgware}
		\subsection{Produktschnittstellen}
	\section{Spezielle Anforderungen an die Entwicklungsumgebung}
		\subsection{Software}
		\subsection{Hardware}
		\subsection{Orgware}
		\subsection{Entwicklungsschnittstellen}
	\section{Gliederung in Teilprodukte}
	\section{Erg\"anzungen}
	\section{Glossar}


\end{document}
